Vertex AIのフルマネージドなMistral AI モデルを利用してみる

Vertex AIのフルマネージドなMistral AI モデルを利用してみる

Vertex AIにて提供されるマネージドAPIを使うと、非常に簡単にGoogle CloudでMistral AIモデルが利用できます!
Clock Icon2024.08.12

データ事業本部 インテグレーション部 機械学習チームの鈴木です。

先月、Google CloudのVertex AIにて、APIとして利用できるマネージドなMistral AIモデルの一般提供が開始されました。

https://dev.classmethod.jp/articles/cm-da-news-ml-202408/

どのように利用できるのか確認してみましたのでご共有します。

Vertex AIで提供されるMistral AIモデル

Model Gardenから利用できるモデルが確認できます。

記事執筆時点で、以下が提供されていました。

  • マネージドAPI
    • Mistral Large(2407)
    • Mistral Nemo
    • Codestral
  • デプロイが必要なモデル
    • Mixtral
    • Mistral-7B

スクリーンショット 2024-08-10 19.24.11

今回はMistral Large(2407)を利用してみました。このモデルは日本語を含む多言語に対応しています。

今回試したモデルは従量課金で提供されています。入力するプロンプトのトークン数および出力のトークン数に応じて各々課金されます。

https://cloud.google.com/vertex-ai/generative-ai/pricing#partner-models

リージョンはus-central1を利用しました。ガイドから対応リージョンをご確認ください。

なお、今回はマネージドAPIのため、デプロイは不要なので参考までですが、Model Gardenからのモデルのデプロイについては、以下の資料があります。

https://cloud.google.com/vertex-ai/generative-ai/docs/deploy/overview?hl=ja
https://dev.classmethod.jp/articles/vertex-ai-model-garden-organize-available-models/

やってみる

以下ガイドを参考にしつつ、curlからMistral Large(2407)を利用してみました。

https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/mistral?hl=ja

準備

前提として、Vertex AI API(aiplatform.googleapis.com)が有効で、作業をするユーザーにモデルの有効化およびVertex AI APIを利用するための権限があることとします。

Mistral AIモデルを使用するために、まずはModel Gardenからモデルを有効化しました。

Vertex AIのModel Gardenから、タスク固有のソリューションのセクションにあるMistral Large(2407)をクリックしました。

スクリーンショット 2024-08-10 18.56.40

初期の状態では有効にするボタンが表示されているため、これをクリックしました。Agreements画面が表示されたので、内容を確認し、有効化しました。

スクリーンショット 2024-08-10 13.33.57

これで利用のための準備は完了です。簡単ですね。

モデルカードではPythonおよびcurlからのモデルの利用方法など様々な情報が記載されているので、確認することをお勧めします。

モデルの利用

まず、リクエストの内容をJSONファイルに記載しました。以下のファイルを作成しました。

request.json
{
    "model": "mistral-large",
      "messages": [
       {
        "role": "user",
        "content": "おはようございます。"
       }],
      "max_tokens": 1000
}

ポイントとしては、modelのバリューにはモデル名をモデルバージョンを表す@2407なしで記載する点です。

Google Cloudにログインし、Cloud Shellを開いて、このファイルをアップロードしました。

以下のコマンドを実行し、Vertex AI APIにリクエストを送りました。$PROJECT_IDだけ自身のものに置き換えてください。urlの方にはモデルバージョンを指定します。

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d @request.json \
     "https://us-central1-aiplatform.googleapis.com/v1/projects/$PROJECT_ID/locations/us-central1/publishers/mistralai/models/mistral-large@2407:rawPredict"

以下のように回答が返ってくることを確認できました。

{
    "id": "レスポンスのID",
    "object": "chat.completion",
    "created": 1723283601,
    "model": "mistral-large",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "おはようございます!今日も一日頑張りましょう。何かお手伝いできることがあれば教えてください。",
                "tool_calls": null
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 16,
        "total_tokens": 67,
        "completion_tokens": 51
    }
}

呼び出しは単一呼び出しおよびストリーミング呼び出しの両方に対応しています。ストリーミング呼び出しの場合は、urlの末尾でstreamRawPredictを指定します。

最後に

簡単にですが、Vertex AIでAPIとして利用できるマネージドなMistral AIモデルの利用方法についてご紹介しました。

マネージドなMistral AIモデルはVertex AIのパートナーモデルの一つとして提供されています。インフラストラクチャのプロビジョニングや管理が不要なため、興味がある方はぜひチェックしてみてください。

https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.